Broadcom NetXtreme Gigabit Ethernet adapters support iSCSI boot to enable network boot of operating systems to diskless systems. The iSCSI boot allows a Windows or Linux operating system boot from an iSCSI target machine located remotely over a standard IP network.
For both Windows and Linux operating systems, iSCSI boot can be configured to boot with two distinctive paths: non-offload (also known as Microsoft/Open-iSCSI initiator) and offload (Broadcom's offload iSCSI driver or HBA). Configuration of the path is set with the HBA Boot Mode option located on the General Parameters screen of the iSCSI Configuration utility. See Table 1 for more information on all General Parameters screen configuration options.
The Broadcom NetXtreme Gigabit Ethernet adapters support iSCSI boot on the following operating systems:
The iSCSI boot setup consists of:
Configuring the iSCSI target varies by target vendors. For information on configuring the iSCSI target, refer to the documentation provided by the vendor. The general steps include:
Configure the Broadcom iSCSI boot software for either static or dynamic configuration. Refer to Table 1 for configuration options available from the General Parameters screen.
Table 1 lists parameters for both IPv4 and IPv6. Parameters specific to either IPv4 or IPv6 are noted.
NOTE: Availability of IPv6 iSCSI boot is platform/device dependent.
To configure the boot protocol
NOTE: If iSCSI boot firmware is not programmed in the NetXtreme network adapter, selecting iSCSI Boot Configuration will not have any effect.
Static iSCSI Boot Configuration
In a static configuration, you must enter data for the system's IP address, the system's initiator IQN, and the target parameters obtained in Configuring the iSCSI Target. For information on configuration options, see Table 1.
To configure the iSCSI boot parameters using static configuration
NOTE: Carefully enter the IP address. There is no error-checking performed against the IP address to check for duplicates or incorrect segment/network assignment.
Dynamic iSCSI Boot Configuration
In a dynamic configuration, you only need to specify that the system's IP address and target/initiator information are provided by a DHCP server (see IPv4 and IPv6 configurations in Configuring the DHCP Server to Support iSCSI Boot). For IPv4, with the exception of the initiator iSCSI name, any settings on the Initiator Parameters, 1st Target Parameters, or 2nd Target Parameters screens are ignored and do not need to be cleared. For IPv6, with the exception of the CHAP ID and Secret, any settings on the Initiator Parameters, 1st Target Parameters, or 2nd Target Parameters screens are ignored and do not need to be cleared. For information on configuration options, see Table 1.
NOTE: When using a DHCP server, the DNS server entries are overwritten by the values provided by the DHCP server. This occurs even if the locally provided values are valid and the DHCP server provides no DNS server information. When the DHCP server provides no DNS server information, both the primary and secondary DNS server values are set to 0.0.0.0. When the Windows OS takes over, the Microsoft iSCSI initiator retrieves the iSCSI Initiator parameters and configures the appropriate registries statically. It will overwrite whatever is configured. Since the DHCP daemon runs in the Windows environment as a user process, all TCP/IP parameters have to be statically configured before the stack comes up in the iSCSI Boot environment.
If DHCP Option 17 is used, the target information is provided by the DHCP server, and the initiator iSCSI name is retrieved from the value programmed from the Initiator Parameters screen. If no value was selected, then the controller defaults to the name:
iqn.1995-05.com.broadcom.<11.22.33.44.55.66>.iscsiboot
where the string 11.22.33.44.55.66 corresponds to the controller's MAC address.
If DHCP option 43 (IPv4 only) is used, then any settings on the Initiator Parameters, 1st Target Parameters, or 2nd Target Parameters screens are ignored and do not need to be cleared.
To configure the iSCSI boot parameters using dynamic configuration
NOTE: Information on the Initiator Parameters, and 1st Target Parameters screens are ignored and do not need to be cleared.
Ensure that CHAP authentication is enabled on the target.
To enable CHAP authentication
The DHCP server is an optional component and it is only necessary if you will be doing a dynamic iSCSI Boot configuration setup (see Dynamic iSCSI Boot Configuration).
Configuring the DHCP server to support iSCSI boot is different for IPv4 and IPv6.
The DHCP protocol includes a number of options that provide configuration information to the DHCP client. For iSCSI boot, Broadcom adapters support the following DHCP configurations:
DHCP Option 17, Root Path
Option 17 is used to pass the iSCSI target information to the iSCSI client.
The format of the root path as defined in IETC RFC 4173 is:
"iscsi:"<servername>":"<protocol>":"<port>":"<LUN>":"<targetname>"
The parameters are defined below.
DHCP Option 43, Vendor-Specific Information
DHCP option 43 (vendor-specific information) provides more configuration options to the iSCSI client than DHCP option 17. In this configuration, three additional suboptions are provided that assign the initiator IQN to the iSCSI boot client along with two iSCSI target IQNs that can be used for booting. The format for the iSCSI target IQN is the same as that of DHCP option 17, while the iSCSI initiator IQN is simply the initiator's IQN.
NOTE: DHCP Option 43 is supported on IPv4 only.
The suboptions are listed below.
Using DHCP option 43 requires more configuration than DHCP option 17, but it provides a richer environment and provides more configuration options. Broadcom recommends that customers use DHCP option 43 when performing dynamic iSCSI boot configuration.
Configuring the DHCP Server
Configure the DHCP server to support option 17 or option 43.
NOTE: If using Option 43, you also need to configure Option 60. The value of Option 60 should match the DHCP Vendor ID value. The DHCP Vendor ID value is BRCM ISAN, as shown in General Parameters of the iSCSI Boot Configuration menu.
The DHCPv6 server can provide a number of options, including stateless or stateful IP configuration, as well s information to the DHCPv6 client. For iSCSI boot, Broadcom adapters support the following DHCP configurations:
DHCPv6 Option 16, Vendor Class Option
DHCPv6 Option 16 (vendor class option) must be present and must contain a string that matches your configured DHCP Vendor ID parameter. The DHCP Vendor ID value is BRCM ISAN, as shown in General Parameters of the iSCSI Boot Configuration menu.
The content of Option 16 should be <2-byte length> <DHCP Vendor ID>.
DHCPv6 Option 17, Vendor-Specific Information
DHCPv6 Option 17 (vendor-specific information) provides more configuration options to the iSCSI client. In this configuration, three additional suboptions are provided that assign the initiator IQN to the iSCSI boot client along with two iSCSI target IQNs that can be used for booting.
The suboptions are listed below.
NOTE: In Table 4, the brackets [ ] are required for the IPv6 addresses.
The content of option 17 should be <2-byte Option Number 201|202|203> <2-byte length> <data>.
Configure the DHCP server to support Option 16 and Option 17.
NOTE: The format of DHCPv6 Option 16 and Option 17 are fully defined in RFC 3315.
Windows Server 2008 R2 and SP2 iSCSI Boot Setup
Windows Server 2008 R2 and Windows Server 2008 SP2 support iSCSI booting. The following procedure references Windows Server 2008 R2 but is common to both the Windows Server 2008 R2 and SP2.
Required CD/ISO image:
Other software required:
Procedure:
The remote system should connect to the iSCSI target and then boot from the DVDROM device.
When the Where do you want to install Windows? window appears, the target drive should be visible. This is a drive connected via the iSCSI boot protocol, located in the remote iSCSI target.
A few minutes after the Windows Server 2008 R2 DVD installation process starts, a system reboot will follow. After the reboot, the Windows Server 2008 R2 installation routine should resume and complete the installation.
Windows Server 2012 iSCSI Boot Setup
Windows Server 2012 supports iSCSI booting and installation. Broadcom requires the use of a "slipstream" DVD with the latest Broadcom drivers injected. See Injecting (Slipstreaming) the Broadcom Drivers into Windows Image Files. Also refer to the Microsoft knowledge base topic KB974072 at support.microsoft.com.
|
|
The following procedure prepares the image for installation and booting:
The remote system should connect to the iSCSI target and then boot from the DVDROM device.
When the Where do you want to install Windows? window appears, the target drive should be visible. This is a drive connected via the iSCSI boot protocol, located in the remote iSCSI target.
A few minutes after the Windows 2012 DVD installation process starts, a system reboot will occur. After the reboot, the Windows 2012 installation routine should resume and complete the installation.
Linux iSCSI Boot Setup
Linux iSCSI boot is supported on Red Hat Enterprise Linux 5.5 and later and SUSE Linux Enterprise Server 11 SP1 and later in both the offload and non-offload paths. Note that SLES 10.x and SLES 11 have support only for the non-offload path.
At this stage, the initial installation phase is complete. The rest of the procedure pertains to creating a new customized initrd for any new components update:
chkconfig network on
chkconfig -level 235 iscsi on
SUSE 11.1 Remote DVD installation workaround
Content of the new boot.open-iscsi file:
#!/bin/bash
#
# /etc/init.d/iscsi
#
### BEGIN INIT INFO
# Provides: iscsiboot
# Required-Start:
# Should-Start: boot.multipath
# Required-Stop:
# Should-Stop: $null
# Default-Start: B
# Default-Stop:
# Short-Description: iSCSI initiator daemon root-fs support
# Description: Starts the iSCSI initiator daemon if the
# root-filesystem is on an iSCSI device
#
### END INIT INFO
ISCSIADM=/sbin/iscsiadm
ISCSIUIO=/sbin/iscsiuio
CONFIG_FILE=/etc/iscsid.conf
DAEMON=/sbin/iscsid
ARGS="-c $CONFIG_FILE"
# Source LSB init functions
. /etc/rc.status
#
# This service is run right after booting. So all targets activated
# during mkinitrd run should not be removed when the open-iscsi
# service is stopped.
#
iscsi_load_iscsiuio()
{
TRANSPORT=`$ISCSIADM -m session 2> /dev/null | grep "bnx2i"`
if [ "$TRANSPORT" ] ; then
echo -n "Launch iscsiuio "
startproc $ISCSIUIO
fi
}
iscsi_mark_root_nodes()
{
$ISCSIADM -m session 2> /dev/null | while read t num i target ; do
ip=${i%%:*}
STARTUP=`$ISCSIADM -m node -p $ip -T $target 2> /dev/null | grep "node.conn\[0\].startup" | cut -d' ' -f3`
if [ "$STARTUP" -a "$STARTUP" != "onboot" ] ; then
$ISCSIADM -m node -p $ip -T $target -o update -n node.conn[0].startup -v onboot
fi
done
}
# Reset status of this service
rc_reset
# We only need to start this for root on iSCSI
if ! grep -q iscsi_tcp /proc/modules ; then
if ! grep -q bnx2i /proc/modules ; then
rc_failed 6
rc_exit
fi
fi
case "$1" in
start)
echo -n "Starting iSCSI initiator for the root device: "
iscsi_load_iscsiuio
startproc $DAEMON $ARGS
rc_status -v
iscsi_mark_root_nodes
;;
stop|restart|reload)
rc_failed 0
;;
status)
echo -n "Checking for iSCSI initiator service: "
if checkproc $DAEMON ; then
rc_status -v
else
rc_failed 3
rc_status -v
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart|reload}"
exit 1
;;
esac
rc_exit
Injecting (Slipstreaming) the Broadcom Drivers into Windows Image Files
To inject Broadcom drivers into the Windows image files, you must obtain the following correct Broadcom driver packages for the applicable Windows Server version (2008 R2, 2008 SP2, 2012, or 2012 R2).
Then, you place these driver packages to a working directory. For example, copy the driver packages to the following directories:
Finally, you inject these drivers into the Windows Image (WIM) files and install the applicable Windows Server version from the updated images.
The detailed steps are provided below:
|
|
md C:\Temp\x
cd /d C:\Temp\x
md src
md mnt
xcopy N:\ .\src /e /c /i /f /h /k /y /q
Note that in this example, the installation DVD is in the N: drive.
Note that you will use this command prompt window in all subsequent steps.
attrib -r .\src\sources\boot.wim
attrib -r .\src\sources\install.wim
dism /mount-wim /wimfile:.\src\sources\boot.wim /index:2 /mountdir:.\mnt
Note that you must always use "2" for the index value.
dism /image:.\mnt /add-driver /driver:C:\Temp\evbd\evbd.inf
dism /image:.\mnt /add-driver /driver:C:\Temp\bxnd\bxnd.inf
dism /image:.\mnt /add-driver /driver:C:\Temp\bxvbd\bxvbd.inf
dism /image:.\mnt /add-driver /driver:C:\Temp\bxfcoe\bxfcoe.inf
dism /image:.\mnt /add-driver /driver:C:\Temp\b57nd60a\b57nd60a.inf
dism /image:.\mnt /add-driver /driver:C:\Temp\bxois\bxois.inf
dism /unmount-wim /mountdir:.\mnt /commit
dism /get-wiminfo /wimfile:.\src\sources\install.wim
For example, in Windows Server 2012, index 2 is identified as "Windows Server 2012 SERVERSTANDARD."
dism /mount-wim /wimfile:.\src\sources\install.wim /index:X /mountdir:.\mnt
Note that X is a placeholder for the index value that you obtained in step 10.
dism /image:.\mnt /add-driver /driver:C:\Temp\evbd\evbd.inf
dism /image:.\mnt /add-driver /driver:C:\Temp\bxnd\bxnd.inf
dism /image:.\mnt /add-driver /driver:C:\Temp\bxvbd\bxvbd.inf
dism /image:.\mnt /add-driver /driver:C:\Temp\bxfcoe\bxfcoe.inf
dism /image:.\mnt /add-driver /driver:C:\Temp\b57nd60a\b57nd60a.inf
dism /image:.\mnt /add-driver /driver:C:\Temp\bxois\bxois.inf
dism /unmount-wim /mountdir:.\mnt /commit
oscdimg -e -h -m -n -lslipstream -bootdata:2#p0,e,b"c:\Program Files\Windows
AIK\Tools\PETools\amd64\boot\etfsboot.com"#pEF,e,b"c:\Program Files\Windows
AIK\Tools\PETools\amd64\boot\efisys.bin" c:\temp\x\src c:\temp\Win20xxMOD.iso
Note that Platform is a placeholder for the architecture of the operating system that you want to install, such as amd64 or x86. Also, xx in the file names is a placeholder for the Windows Server OS version (2012, 2008R2, 2008SP2.)
After that the system has been prepared for an iSCSI boot and the operating system is present on the iSCSI target, the last step is to perform the actual boot. The system will boot to Windows or Linux over the network and operate as if it were a local disk drive.
If CHAP authentication is needed, enable CHAP authentication after determining that booting is successful (see Enabling CHAP Authentication).
There are several other factors that should be considered when configuring a system for iSCSI boot.
Booting via the NDIS path is supported. The Speed & Duplex settings can be changed using the BACS management utility for iSCSI boot via the NDIS path.
Virtual LAN (VLAN) tagging is not supported for iSCSI boot with the Microsoft iSCSI Software Initiator.
In the case when installation directly to a remote iSCSI target is not an option, an alternate way to create such an image is to use the `dd' method. With this method, you install the image directly to a local hard drive and then create an iSCSI boot image for the subsequent boot:
The following troubleshooting tips are useful for iSCSI boot.
Problem: A system blue screen occurs when iSCSI boots Windows Server 2008 R2 through the adapter's NDIS path with the initiator configured using a link-local IPv6 address and the target configured using a router-configured IPv6 address.
Solution: This is a known Windows TCP/IP stack issue.
Problem: The Broadcom iSCSI Crash Dump utility will not work properly to capture a memory dump when the link speed for iSCSI boot is configured for 10 Mbps or 100 Mbps.
Solution: The iSCSI Crash Dump utility is supported when the link speed for iSCSI boot is configured for 1 Gbps or 10 Gbps. 10 Mbps or 100 Mbps is not supported.
Problem: An iSCSI target is not recognized as an installation target when you try to install Windows Server 2008 by using an IPv6 connection.
Solution: This is a known third-party issue. See Microsoft Knowledge Base KB 971443, http://support.microsoft.com/kb/971443.
Problem: When switching iSCSI boot from the Microsoft standard path to Broadcom iSCSI offload, the booting fails to complete.
Solution: Install or upgrade the Broadcom Virtual Bus Device (VBD) driver to 5.0.x, along with the OIS driver, prior to switching the iSCSI boot path.
Problem: The iSCSI configuration utility will not run.
Solution: Ensure that the iSCSI Boot firmware is installed in the NVRAM.
Problem: A system blue screen occurs when installing the Broadcom drivers through Windows Plug-and-Play (PnP).
Solution: Install the drivers through the Setup installer.
Problem: For static IP configuration when switching from Layer 2 iSCSI boot to Broadcom iSCSI HBA, then you will receive an IP address conflict.
Solution: Change the IP address of the network property in the OS.
Problem: After configuring the iSCSI boot LUN to 255, a system blue screen appears when performing iSCSI boot.
Solution: Although Broadcom's iSCSI solution supports a LUN range from 0 to 255, the Microsoft iSCSI software initiator does not support a LUN of 255. Configure a LUN value from 0 to 254.
Problem: NDIS miniports with Code 31 yellow-bang after L2 iSCSI boot install.
Solution: Run the T7.4 installer.
Problem: Unable to update inbox driver if a non-inbox hardware ID present.
Solution: Create a custom slipstream DVD image with supported drivers present on the install media.
Problem: In Windows Server 2012, toggling between iSCSI HBA offload mode and iSCSI software initiator boot can leave the machine in a state where the HBA offload miniport bxois will not load.
Solution: Manually edit [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\bxois\StartOverride] from 3 to 0.
Modify the registry key before toggling back from NDIS to HBA path in CCM.
|
|
Problem: Installing Windows onto an iSCSI target via iSCSI boot fails when connecting to a 1 Gbps switch port.
Solution: This is a limitation relating to adapters that use SFP+ as the physical connection. SFP+ defaults to 10 Gbps operation and does not support autonegotiation.
If you will use the Broadcom iSCSI Crash Dump utility, it is important to follow the installation procedure to install the iSCSI Crash Dump driver. See Using the Installer for more information.